import Vue from "vue"
import VueRouter from "vue-router"
import Reg from "@/views/Reg/Reg.vue"
import Login from "@/views/Login/Login.vue"
import Main from "@/views/Main/Main.vue"
import Home from "@/views/Menus/Home/Home.vue"
import UserInfo from "@/views/Menus/User/UserInfo.vue"
import UserAvatar from "@/views/Menus/User/UserAvatar.vue"
import UserPwd from "@/views/Menus/User/UserPwd.vue"
import ArtCate from "@/views/Menus/Article/ArtCate.vue"
import ArtList from "@/views/Menus/Article/ArtList.vue"
Vue.use(VueRouter)

// 把下面的代码粘贴到路由模块中对应的位置，即可防止路由报错的问题
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
  return originalPush.call(this, location).catch((err) => err)
}

const routes = [
  { path: "/reg", component: Reg },
  { path: "/login", component: Login },
  {
    path: "/",
    component: Main,
    redirect: "/home",
    children: [
      { path: "home", component: Home },
      { path: "user-info", component: UserInfo },
      { path: "user-avatar", component: UserAvatar },
      { path: "user-pwd", component: UserPwd },
      // 文章分类
      { path: "art-cate", component: ArtCate },
      // 文章列表
      { path: "art-list", component: ArtList }
    ]
  }
]

const router = new VueRouter({
  routes
})
router.beforeEach((to, from, next) => {
  if (to.path === "/") {
    const token = localStorage.getItem("token")
    if (token) {
      next()
    } else {
      next("/login")
    }
  } else {
    next()
  }
})

export default router
